The server is the part of a computer system's architecture that functions as the interface between the computer or central processing unit and the user. It is desirable to test or evaluate the performance of the server for various purposes. For example, long delays between a user input and the system response can be detected and subsequently eliminated. Similarly, it is desirable to test and evaluate application programs running on the central processor unit of the computer for many purposes.
Common methods of performance testing a server involve the use of video cameras or stop watches. In one such method the user or operator working at a terminal and the terminal screen are filmed by a video camera. Thereafter the video is replayed on a machine that displays time as a function of the film speed. Performance metrics are then calculated based upon the difference between the displayed time of a starting film event and an ending film event. The performance metrics for each timed event are then recorded. In another method, the step of calculating performance metrics comprises manually timing response times with a stop watch. In either method, the performance metrics for all of the timed events are then analyzed to determine the performance of the applications or server. This same approach is also used to determine the performance of the server for a single or specific input event. This procedure is time-consuming, tedious, and prone to error. Furthermore, this procedure requires actual operation by the user at a workstation. Thus, simulated user input is impossible. Furthermore, since actual user input is inconsistent from one operation to the next, it is impossible to have consistent input from run to run.
Another way of testing the performance of an application program or a server in response to input events or protocol requests is with remote terminal emulation (RTE). RTE dispenses with a live user or operator for sending input to the server or the application program and replaces the operator with software generated input events which are loaded onto the server input event queue. However, prior attempts at RTE on servers of the X window type systems have failed to provide a way to intercept output generated protocol requests by the server or the application. Furthermore, none of these attempts have supported receiving simulated input from a remote source, i.e., a source that sends input over a non x transport link, such as network or asynchronous terminal line. Thus, these prior attempts at RTE cannot test system configurations involving networks, modems and other peripheral devices.